home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Resources / Online / Term / Extras / Source / gtlayout-source.lha / LTP_CreateExtraObject.c < prev    next >
C/C++ Source or Header  |  1996-03-18  |  2KB  |  63 lines

  1. /*
  2. **    GadTools layout toolkit
  3. **
  4. **    Copyright © 1993-1996 by Olaf `Olsen' Barthel
  5. **        Freely distributable.
  6. **
  7. **    :ts=4
  8. */
  9.  
  10. #ifndef _GTLAYOUT_GLOBAL_H
  11. #include "gtlayout_global.h"
  12. #endif
  13.  
  14. struct Gadget *
  15. LTP_CreateExtraObject(LayoutHandle *handle,ObjectNode *parentNode,struct Gadget *parentGadget,struct NewGadget *ng,LONG imageType,LONG incAmount)
  16. {
  17.     ObjectNode        *node;
  18.     struct Gadget    *gadget;
  19.  
  20.     if(node = LTP_CreateObjectNode(handle,incAmount ? INCREMENTER_KIND : PICKER_KIND,parentGadget->GadgetID,NULL))
  21.     {
  22.         ng->ng_LeftEdge        = ng->ng_LeftEdge + ng->ng_Width;
  23.         ng->ng_Width        = incAmount ? (4 + handle->GlyphWidth + 4) : LTP_GetPickerSize(handle);
  24.         ng->ng_GadgetText    = "";
  25.         ng->ng_UserData        = node;
  26.         ng->ng_Flags        = NULL;
  27.  
  28.         if(incAmount)
  29.             node->Special.Incrementer.Amount = incAmount;
  30.  
  31.         node->Special.Incrementer.Image = NewObject(LTP_ImageClass,NULL,
  32.             IIA_ImageType,    imageType,
  33.             IA_Width,        ng->ng_Width,
  34.             IA_Height,        ng->ng_Height,
  35.         TAG_DONE);
  36.  
  37.         if(node->Special.Incrementer.Image)
  38.         {
  39.             if(gadget = CreateGadgetA(GENERIC_KIND,handle->Previous,ng,NULL))
  40.             {
  41.                 gadget->GadgetType        |= GTYP_BOOLGADGET;
  42.                 gadget->Flags            |= GFLG_GADGIMAGE | GFLG_GADGHIMAGE;
  43.                 gadget->Activation        |= GACT_IMMEDIATE | GACT_RELVERIFY;
  44.                 gadget->GadgetRender     = node->Special.Incrementer.Image;
  45.                 gadget->SelectRender     = node->Special.Incrementer.Image;
  46.  
  47.                 if(parentNode->Disabled)
  48.                     gadget->Flags |= GFLG_DISABLED;
  49.  
  50.                 node->Host = gadget;
  51.  
  52.                 node->Special.Incrementer.Parent = parentGadget;
  53.  
  54.                 return(gadget);
  55.             }
  56.             else
  57.                 LTP_DeleteObjectNode(handle,node);
  58.         }
  59.     }
  60.  
  61.     return(NULL);
  62. }
  63.